<?php


namespace app\back\controller;


use app\back\model\GoodsReplyModel;
use app\middleware\BackAuth;
use think\facade\Validate;
use app\Request;
use think\response\Json;
use think\validate\ValidateRule;

class GoodsReply
{
    protected $middleware = [BackAuth::class];
    /**获取订单评价列表
     * @param Request $request
     * @return Json
     */
    public function list(Request $request)
    {
        // 获取参数
        $input['limit'] = $request->post('limit');
        $input['page'] = $request->post('page');
        $input['status'] = $request->post('status');
        $input['is_reply'] = $request->post('is_reply');
        // 参数校验
        $validate = Validate::rule([
            'limit' => ValidateRule::isRequire(null, '缺少参数'),
            'page' => ValidateRule::isRequire(null, '缺少参数'),
            'status' => function($value) {
                return in_array($value, ['', '0', '1'], true) ? true : '不合法参数' ;
            },
            'is_reply' => function($value) {
                return in_array($value, ['', '0', '1'], true) ? true : '不合法参数' ;
            }
        ]);

        if (!$validate->check($input)) {
            return jsonFail($validate->getError());
        }
        // 逻辑处理
        return GoodsReplyModel::list($input,$request->info);
    }

    /**修改显示状态
     * @param Request $request
     * @return Json
     */
    public function changeStatus(Request $request)
    {
        // 获取参数
        $input['id'] = $request->post('id');
        $input['status'] = $request->post('status');
        // 参数校验
        $validate = Validate::rule([
            'id' => ValidateRule::isRequire(null,'缺少参数')->regex('/^[1-9][0-9]*$/', '不合法数据'),
            'status' => function($value) {
                return in_array($value, ['0', '1'], true) ? true : '不合法参数' ;
            }
        ]);

        if (!$validate->check($input)) {
            return jsonFail($validate->getError());
        }
        // 逻辑处理
        return GoodsReplyModel::changeStatus($input,$request->info);
    }

    /**回复评价
     * @param Request $request
     * @return Json
     */
    public function back(Request $request)
    {
        // 获取参数
        $input['id'] = $request->post('id');
        $input['merchant_reply_content'] = $request->post('merchant_reply_content');
        // 参数校验
        $validate = Validate::rule([
            'id' => ValidateRule::isRequire(null,'缺少参数')->regex('/^[1-9][0-9]*$/', '不合法数据'),
            'merchant_reply_content' => function($value) {
                $len = mb_strlen($value);
                return $len > 0 && $len <= 300 ? true : '不合法参数' ;
            }
        ]);

        if (!$validate->check($input)) {
            return jsonFail($validate->getError());
        }
        // 逻辑处理
        return GoodsReplyModel::back($input,$request->info);
    }
}